<!DOCTYPE html>
<html lang="en">
<head>
    <!-- 设置文档的字符编码为 UTF-8，确保能正确显示各种字符 -->
    <meta charset="UTF-8">
    <!-- 设置视口相关信息，使页面在不同设备上能自适应显示，宽度与设备宽度一致，初始缩放比例为 1.0 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- 设置网页的标题 -->
    <title>过渡和动画</title>
    <!-- 引入 Vue.js 库，以便使用 Vue 的功能 -->
    <script src="../js/vue.js"></script>
    <style>
        /* 定义淡入淡出过渡的进入和离开激活状态样式 */
        /* .fade-enter-active 是元素进入过渡时的激活状态样式，.fade-leave-active 是元素离开过渡时的激活状态样式 */
        /* 这里设置 opacity（透明度）属性在 0.5 秒内进行过渡动画 */
        .fade-enter-active,.fade-leave-active {
          transition: opacity 0.5s;
        }
        /* 定义淡入过渡开始时和淡出过渡结束时的样式 */
        /* .fade-enter 表示元素开始进入过渡时的样式，.fade-leave-to 表示元素结束离开过渡时的样式 */
        /* 这里将透明度设置为 0，即元素完全透明 */
       .fade-enter,.fade-leave-to {
          opacity: 0;
        }
    </style>
</head>
<body>
    <!-- 定义 Vue 实例的挂载点，id 为 demo -->
    <div id="demo">
        <!-- 创建一个按钮，当点击按钮时，触发事件将 data 中的 show 属性值取反 -->
        <button v-on:click="show = !show">
          Toggle
        </button>
        <!-- 使用 Vue 的 <transition> 组件来实现过渡效果 -->
        <!-- name 属性指定过渡效果的名称为 fade，这样会自动应用以 fade 开头的 CSS 类名 -->
        <transition name="fade">
            <!-- 使用 v-if 指令根据 data 中的 show 属性值来决定是否显示该段落 -->
            <!-- 当 show 为 true 时显示，为 false 时隐藏，并且在显示和隐藏过程中应用过渡效果 -->
            <p v-if="show">hello</p>
        </transition>
    </div>
    <script type="text/javascript">
        // 创建一个新的 Vue 实例
        new Vue({
            // 指定 Vue 实例的挂载点，这里是 id 为 demo 的元素
            el: '#demo',
            // 定义 Vue 实例的数据对象
            data: {
                // 定义一个名为 show 的数据属性，初始值为 true，表示段落默认显示
                show: true
            }
        });
    </script>
</body>
</html>